<?php

class DAO {

    private $servidor_banco = '';
    private $tabela = '';
    private $usuario = '';
    private $senha = '';
    private $conn = '';
    private $banco = '';

    public function __construct($servidor_banco = '', $usuario = '', $senha = '', $banco = '') {
        $this->conn = mysql_connect($servidor_banco, $usuario, $senha);
        $this->banco = mysql_select_db($banco, $this->conn);
        if (!$this->conn && !$this->banco) {
            echo mysql_error();
        }
    }

/* ********************************************************************
 * FUNÇÃO: select()
 * DESCRIÇÃO: FUNÇÃO DE SELEÇÃO
 * @param $tabela = nome da tabela
 * @param $cond   = condiçao do comando sql
 * @param $campo  = campos selecionados
 * ********************************************************************
 */
public function select($tabela, $cond = "", $campos = '*') {
        $resultado = NULL;
        $qrRead = "SELECT {$campos} FROM {$tabela} {$cond}";//CRIA QUERY STRING
        $stRead = mysql_query($qrRead) or die('Error ao efetuar leitura na ' . $tabela . ' ' . mysql_error());
        $cField = mysql_num_fields($stRead); //PEGA A QUANTIDADE DE COLUNAS
        //CRIA UM ARRAY COM TODAS OS NOMES DAS COLUNAS DA TABELA
        for ($y = 0; $y < $cField; $y++) {
            $names[$y] = mysql_field_name($stRead, $y);
        }//fim for
        //CRIA A MATRIZ COM OS DADOS E OS NOMES DA COLUNAS
        for ($x = 0; $res = mysql_fetch_assoc($stRead); $x++) {
            for ($i = 0; $i < $cField; $i++) {
                $resultado [$x][$names[$i]] = $res[$names[$i]];
            }//fim for
        }//fim for
        return $resultado;//RETORNA UM ARRAY COM OS DADOS SELECIONADOS
    }//FIM FUNCTION


/* ********************************************************************
 * FUNÇÃO: insert()
 * DESCRIÇÃO: FUNÇÃO PARA INSERÇÃO DE REGISTRO NA BASE DE DADOS
 * @param $tabela = nome da tabela
 * @param $datas  = array com os dados a serem inseridos array('nome da coluna'=>'valor');
 * ********************************************************************
 */

public function insert($tabela, array $datas) {
    $fields = implode(", ", array_keys($datas));//PREPARA A VARIAVEL PRA RECEBER O NOME DAS COLUNAS
    $values = "'" . implode("', '", array_values($datas)) . "'";//PREPARA A VARIAVEL PRA RECEBER OS VALORES
    $qrCreate = "INSERT INTO {$tabela}({$fields}) VALUES ({$values})";//CRIA A QUERY STRING
    
    //EXECUTA A QUERY STRING
    $stCreate = mysql_query($qrCreate) or die('Error ao cadastrar em ' . $tabela . ' ' . mysql_error());

    //SE EXECUTOU COM SUCESSO
    if ($stCreate) {
        return true;
    } else {
        return false;
    }
}//FIM FUNÇÃO

/* ********************************************************************
 * FUNÇÃO: update()
 * DESCRIÇÃO: FUNÇÃO PARA ATUALIZAR REGISTRO
 * @param $tabela = nome da tabela
 * @param $where  = condiçao do comando sql
 * @param $datas  = campos selecionados
 * ********************************************************************
 */

public function update($tabela, array $datas, $where) {
    //PREPAR OS CAMPOS COM OS VALORES PARA SEREM ADICIONADOS NA QUERY STRING
    foreach ($datas as $fields => $values) {
        $campos[] = "$fields = '$values'";
    }
    //CONVERTE O ARRAY EM STRING SEPARANDO OS CAMPOS E VALORE POR UMA ',' EXP: COLUNA=VALOR, COLUNA2=VALOR2
    $campos = implode(", ", $campos);
    $qrUpdate = "UPDATE {$tabela} SET {$campos} WHERE {$where}";//CRIA QUERY STRING
    $stUpdate = mysql_query($qrUpdate) or die('Error ao atualizar em ' . $tabela . ' ' . mysql_error());//EXECUTA O COMANDO SQL

    //SE ATUALIZOU COM SUCESSO ENTÃO
    if ($stUpdate) {
        return true;//RETORNA VERDADEIRO
    } else {
        return false;//RETORNA FALSO
    }
}//FIM FUNCTION


/* ********************************************************************
 * FUNÇÃO: cadastraUsuario()
 * DESCRIÇÃO: FUNÇÃO PARA CADASTRAR USUARIOS
 * @param $registro  = dados dos usuario
 * @param $idgrupo   = grupo a qual pertence (valor padrão = 1)
 * ********************************************************************
 */
public function cadastraUsuario($registro = array(), $idgrupo = 1){
    $cadastraUsuario = insert('usuario', $registro);
}


    public function inserirUsuario($tabela = '', $valores = array(), $idgrupo = 1) {

        $val = '';
        foreach ($valores as $v) {
            $val = $val . $v . ',';
        }
        echo $val;
        $dados = substr($val, 0, strlen($val) - 1);
        echo $dados;
        if (mysql_query("insert into usuario(cpfCnpj,nomeCompleto,email,senha,idGrupo) values ({$dados},{$idgrupo})", $this->conn)) {
            //mysql_close($this->conn);

            return true;
        } else {
            echo mysql_error();
            return false;
        }
    }

    public function inserirPrestador($tabela = '', $valores = array()) {
        $val = '';
        foreach ($valores as $v) {
            if ($v != "'0'") {
                $val = $val . $v . ',';
            }
        }

        $dados = substr($val, 0, strlen($val) - 1);
        if (mysql_query("insert into prestador_tomador(idCidade,nomeCompletotipoPessoa,razaoSocial,nomeFantasia,endereco,numeroEndereco,complementoEndereco,bairro,cep,inscricaoMunicipal) values (1,1,{$dados})", $this->conn)) {
            //mysql_close($this->conn);
            return true;
        }
        echo "fail tomador";
    }

    public function conexao() {
        return $this->conn;
    }
    
    public function close(){
        mysql_close($this->conn);
    }
}

?>